home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group98a.txt / 000122_icon-group-sender _Wed Mar 11 16:24:55 1998.msg < prev    next >
Internet Message Format  |  2000-09-20  |  7KB

  1. Return-Path: <icon-group-sender>
  2. Received: from kingfisher.CS.Arizona.EDU (kingfisher.CS.Arizona.EDU [192.12.69.239])
  3.     by baskerville.CS.Arizona.EDU (8.8.7/8.8.7) with SMTP id QAA00606
  4.     for <icon-group-addresses@baskerville.CS.Arizona.EDU>; Wed, 11 Mar 1998 16:24:54 -0700 (MST)
  5. Received: by kingfisher.CS.Arizona.EDU (5.65v4.0/1.1.8.2/08Nov94-0446PM)
  6.     id AA13332; Wed, 11 Mar 1998 16:24:54 -0700
  7. From: gep2@computek.net
  8. Date: Wed, 11 Mar 1998 14:08:18 -0600
  9. Message-Id: <199803112008.OAA16114@axp.cmpu.net>
  10. Mime-Version: 1.0
  11. Content-Type: text/plain
  12. Content-Transfer-Encoding: 7bit
  13. Subject: Re: Translation into C
  14. To: evans@gte.net, icon-group@optima.CS.Arizona.EDU
  15. In-Reply-To: <350609C3.75A7@gte.net>
  16. X-Mailer: SPRY Mail Version: 04.00.06.17
  17. Errors-To: icon-group-errors@optima.CS.Arizona.EDU
  18. Status: RO
  19. Content-Length: 6473
  20.  
  21. [MATLAB]
  22.  
  23. > "The Compiler and Library products offer MATLAB users execution
  24. speedups, code hiding, and the ability to automatically generate
  25. standalone C and C++ applications. By automating the conversion of
  26. M-files into C and C++ source code, the MATLAB Compiler and Math
  27. Libraries eliminate time-consuming and error-prone manual translation
  28. and reduce development time for applications that run outside the MATLAB
  29. environment."
  30.  
  31. > -- http://www.mathworks.com/products/compilerlibrary/
  32.  
  33. > We have here a case study of the desirability of C++ conversion.  A
  34. commercial company with a stable product decides it is worth investing a
  35. lot of money to develop C++ conversion.  Hmm...
  36.  
  37. That's really a TOTALLY separate issue.
  38.  
  39. >From their perspective, clearly it's easier to generate C/C++ code than to 
  40. generate a direct executable.  It eliminates them having to worry about the 
  41. details of memory models, address resolution, executable file formats, I/O and 
  42. other runtime library functions, and all the rest.  All they have to crank out 
  43. is C code in generic text file format, and the resulting program can presumably 
  44. be compiled for most systems with a good production-quality C compiler.  
  45. (Remember that C is really not a whole lot more than a symbolic assembler 
  46. language).
  47.  
  48. Also, this kind of number-crunching program tends to be heavily compute-bound, 
  49. and with highly direct, clear-cut translation of the arithmetical processing to 
  50. be done... probably with a lot of custom-generated inline code.  So for their 
  51. purposes, a generic interpreter (whether Icon-type or even Java-type for that 
  52. matter) is less interesting.
  53.  
  54. Icon on the other hand already has an interpreter written in C (thus very easily 
  55. ported to other systems, as evidenced by the wide array of environments where 
  56. Icon is already supported) and has the characteristic that many of the language 
  57. functions are complex enough that they aren't likely to be done in inline code 
  58. in any case.  Clearly once you get into the "runtime library" (where a language 
  59. like Icon spends a lot of its time), the application IS being directly executed.
  60.  
  61. And as for "worth investing a lot of money", certainly there's nothing 
  62. PREVENTING a for-profit company that decides that this is true from writing an 
  63. Icon compiler which would generate C/C++ code.  Frankly, I don't think you're 
  64. very likely to see that happen.  Remember that Icon is available for our use due 
  65. to a **research project** which we've been fortunate enough to reap the benefits 
  66. of.  It is apparently the judgement of the people doing that research (up to now 
  67. at least... and I concur) that there are other things which would be far more 
  68. useful to add to the language than to have their development project schedule be 
  69. jerked around by someone just because THEY *THINK* that it would be cool to 
  70. crank out C or C++ code.
  71.  
  72. If someone were going to take on a big addition to Icon, frankly, I'd far rather 
  73. see support added for some kind of databases... whether simple ISAM files, or 
  74. (perhaps better) ODBC or some other kind of generic database support.  This is 
  75. at present one of the biggest holes in the language, since nearly all 
  76. business-oriented applications are based on [multiple?-]keyed, related databases 
  77. of some kind each with multiple-field records.  Going with a "standard" database 
  78. implementation would allow one to use Icon with diverse database systems 
  79. (FoxPro, Access, even Oracle or some such) so that it could access the same 
  80. corporate data as the other systems in the company use... and would allow a much 
  81. easier "foot in the door" to permit Icon to get a foothold in many companies.
  82.  
  83. And again regarding "worth investing a lot of money", where and how do you 
  84. propose that one might envision seeing a genuine return of that money 
  85. "invested"?  As it is, most people don't pay for Icon (and even with the product 
  86. being essentially FREE it's not clear that it's exactly setting the programming 
  87. world on fire... unfortunately).
  88.  
  89. So anyhow, while people could speculate nearly endlessly about what the 
  90. characteristics might be of an Icon implemented such that the compiler cranked 
  91. out ["maintainable", no less!!!  And I think this is the silliest aspect of all] 
  92. C/C++ code, the _fact_ is that that is _not_ the way that Icon was implemented, 
  93. and I doubt that's going to change anytime real soon.  Use Icon, and enjoy its 
  94. many wonderful and unique features.  I think people should quit griping about 
  95. how it's implemented!
  96.  
  97. As a product developer myself, I know just how easy it is for outside people to 
  98. try to set the agenda for the developer... it's easy for them (not understanding 
  99. what's involved, and of course not being willing to cough up the money either) 
  100. to propose grand visions of work which would perhaps take many man-years to 
  101. complete.  It's especially absurd when the product doesn't even make sense to 
  102. begin with, and probably wouldn't be worth having if anyone DID do all that 
  103. work.
  104.  
  105. And that's what I was alluding to in the "silly" comment above.  The reason 
  106. people write a program in a language like Icon is because it's HUGELY simpler 
  107. than writing in C/C++.  But once a program is initially written, it's rarely 
  108. "done" (other than one-shot programs of course) and then it enters the 
  109. "maintenance/use/upgrade" part of the software life cycle... usually much longer 
  110. than the time it took to write the program to begin with.  And if it made sense 
  111. to WRITE the program in Icon to begin with, you'll probably want to maintain and 
  112. enhance it ALSO from the Icon source.  Once you start dicking around with the 
  113. C/C++ source code, you'll then lose those changes when you enhance and recompile 
  114. the program from the Icon source code.
  115.  
  116. So I really think that people ought to just use Icon and enjoy it for what it 
  117. is!!  It really is a terrific language, highly useful, and I think it's sorta 
  118. ludicrous to presume that it makes sense to spend (waste!) a lot of time 
  119. cranking out C/C++ source code (and TRYING, probably unsuccessfully, to make it 
  120. such that the program might be maintainable at that level... clearly few 
  121. applications programmers are ever going to understand enough about the Icon 
  122. implementation internals and rules to be able to successfully modify a program 
  123. where all those internal details and programmer pitfalls are right out there in 
  124. the open).
  125.  
  126. Gordon Peterson
  127. http://www.computek.net/public/gep2/
  128. Support the Anti-SPAM Amendment!  Join at http://www.cauce.org/
  129.  
  130.